home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Just Call Me Internet
/
Just Call Me Internet.iso
/
com
/
computer
/
casio_st
/
prog_fx
/
volumes
/
fxvol1.asc
next >
Wrap
Text File
|
1994-03-01
|
28KB
|
913 lines
VOLUME 1
*** PROGRAMMES CASIO FX 850P ***
(c) W-Tel RTC (16) 62 93 74 05
VOUS VENEZ DE TELECHARGER LE FICHIER
FXVOL1.LST SUR W-TEL. CES PROGRAMMES
SONT FACILEMENT ADAPTABLES SUR D'AUTRES
MICRO.
VOUS POUVEZ SOIT RE-TAPER CES PRG SUR
VOTRE MICRO, SOIT A L'AIDE DU LOGICIEL
TRANSFILE ST850 LES CHARGER DIRECTEMENT
SUR LE CASIO FX850P. CE LOGICIEL EST
DISTRIBUE PAR OMIKRON FRANCE AU PRIX DE
500FRS ENVIRON.
SI VOUS AVEZ ECRIT UN SOFT SUR CASIO
FX850P VENEZ LE METTRE SUR W-TEL 24/24
AU 62.93.74.05 (BAL WILLY).
SOMMAIRE DU VOLUME 1
ADRESSES SYSTEME ET ORGANISATION DE LA
RAM.
programme Course
programme drive
programme Gestion
programme jour de la date
programme pendu
programme poursuite
programme Simplex
programme simplification fraction
programme Zero polynome degre N avec
complexe
programme d'animation.
Programme de conversion base 10<> base N
(N>1)
Biorythme classique.
Programme d'exploration de la RAM et
ROM.
Programme de transformation d'un rel en
fraction. Trs rapide !
Nombres alatoires.
Trs utile pour savoir le nombre
d'octets que prennent les programmes et
le MEMO.
Petit prsentation sympa...
Voici le pro des pro: Transfert des
programmes LIB en P0.
Pour voir le pass de votre Casio
Petit programme qui dveloppe (a+b)^n
avec n<10
Programme pour que PIELB trouve sa bien-
aime
Programme de cration de caractres.
La suite dans VOLUME 2....(disponible)
********************************
Voici la mmoire du Casio Fx 850p:
ADRESSES SYSTEME ET ORGANISATION DE LA
RAM.
Adresses System de 0 a 2933 (&h0000 a
&h0B7F)
0000-0255 memoire virtuelle de
l'affichage
0257-0259 pointeur sur debut de
fichier GOSUB/FOR pile
0292-0352 pile des niveaux de
parentheses
0512-0767 tampon d'entree &h00=fin
de l'entree
0768-1023 memoire intermediaire
pour calculs de fonctions (CALC/VALF)
1024-1279 memoire des fonctions
pour CALC
1545-1552 chiffre "LIB"/nom de
fichier
1582-1597 representation d'un
nombre (PRINT)
1670-1672 pointeur:debut de zone
fichiers/debut de pile
1673-1675 pointeur:fin de zone
fichiers
1676-1678 pointeur:fin de pile
1679-1681 pointeur:debut donnees
"batch"
1682-1684 pointeur:fin donnees
"batch"/debut de zone FOR
1685-1687 pointeur:fin de zone
FOR/debut de zone GOSUB
1688-1690 pointeur:fin de zone
GOSUB/fin de pile/debut de pile
variables/debut zone chaine de
caracteres
1691-1693 pointeur:fin de zone
chaines de caracteres
1694-1696 pointeur:debut de zone
nombres
1697-1699 pointeur:fin de zone
nombres/debut de zone noms
1700-1702 pointeur:fin de pile
variables/debut de zone programmes basic
1703-1705 pointeur:fin de zone
programme basic/debut de zone MEMO
1706-1708 pointeur:fin de zone MEMO
1709-1711 pointeur:fin de RAM libre
1712-1714 pointeur:debut du
sommaire zones basic (P0-P9)
1715-1717 pointeur:fin du sommaire
zones basic/fin de RAM
1718-1720 pointeur:debut de
sommaire LIB0:
1721-1723 programme actuellement en
LIB0:
1724-1726 pointeur:fin de sommaire
LIB0:
1727-1729 pointeur:debut de
sommaire LIB1:
1730-1732 porgramme actuellement en
LIB1:
1733-1735 pointeur:fin de sommaire
LIB1:
1747-1749 pointeur:sur nom de
variable si affectation d'une valeur
1750-1752 pointeur:continuer apres
STOP
1771-1773 pointeur:sur zone basic
actuelle
1774-1775 pointeur:numero de ligne
1776-1778 pointeur:sur instruction
en cours
1867-1874 mot de passe
1878-2133 tampon de sortie pour
CALC
2176-2933 pile pour
fichiers/FOR/GOSUB
++++++++++++++++++++++++++++++++++++++
programme Course:
Ce petit programme me sert faire le
calcul de mes courses au super march.
1 SET F2:CLS:PRINT "Prix=";PR;TAB(16);"Total=";T;CHR$(13);:PR=0:PRINT "Prix:";:INPUT@(20);PR:T=T+PR:GOTO 10
++++++++++++++++++++++++++++++++++++++
programme drive
CE PROGRAMME CALCUL LA DERIVEE D'UNE
FONCTION EN X0.
LA FONCTION EST ENTREE EN PREMIER, PUIS
ENTREZ X0. TAPEZ E POUR FINIR.
EX: F(X)=COSX ET X0=0 D'OU F'(0)=0
(METTEZ VOUS EN RADIAN !!!)
1 REM DERIVE EN X0
2 REM (C) WILLYTEL JUIN 89
3 REM 24H/7H AU 62.93.74.05
9 REM chr$(26):jap on, chr$(27):jap off
10 MODE5:PRINT "E=END":CLS:PRINT "Calcul de derivee";CHR$(13);:INPUT "Fonction F(X)=";F$
20 CLS:PRINT "F(X)=";F$;CHR$(13);:INPUT "X0=";X$:X=VALF(X$):IF X$="E" THEN PRINT "END.";CHR$(13);:MODE4:END
30 X0=X:F0=VALF(F$):X=X+X*1E-8+1E-10:F=VALF(F$):F=(F0-F)/(X0-X):X=X0
40 A$="F'("+X$+")=":PRINT A$;F:GOTO 20
++++++++++++++++++++++++++++++++++++++
programme Gestion
1 REM GESTION DE COMPTE SIMPLE
2 REM (C) WILLYTEL 89
3 REM 24H/7H AU 62.93.74.05
4 REM ATTENTION CE PROGAMME UTILISE LA Function Memory AFIN DE GARDER LE SOLDE EN MEMOIRE.
5 REM N'UTILISEZ DONC PAS CELLE-CI AU RISQUE DE PERDRE VOTRE SOLDE !!!
10 DIM SO(9):SOLDE=0:SET F2
20 FOR X=1024TO1033
30 I=X-1024:SO(I)=PEEK(X)
40 NEXT X
50 FOR I=0 TO 8
60 SOLDE=SO(I)*100^(I)+SOLDE
70 NEXT I
80 SOLDE=SOLDE/100*(-2*SO(9)+1)
90 CLS:LOCATE0,0:PRINT "SOLDE:";SOLDE;:LOCATE0,1:PRINT "OPERATION:";:INPUT@(9);OP
95 IF ABS(SOLDE+OP)>1E10 THEN PRINT "DEPASSEMENT CAPACITE !!!":GOTO 90
100 SOLDE=SOLDE+OP:OP=0
110 IF SOLDE<0 THEN POKE 1033,1
120 IF SOLDE>0 THEN POKE 1033,0
130 FOR I=1024 TO 1032: A=INT(FRAC(ABS(SOLDE)/100^(I-1024))*100):POKE I,A:NEXT I:GOTO 90
++++++++++++++++++++++++++++++++++++++
programme jour de la date
VOUS POURREZ AVEC CE PETIT PROGRAMME
CALCULER LE JOUR DE VOTRE NAISSANCE.
EX: LE 02/03/1968 ETAIT UN SAMEDI
LE 01/01/2000 SERA UN SAMEDI.
CE PROGRAMME EST GARANTIS 100% JUSQU'A
L'AN 9999.
1 ON ERROR GOTO 200
2 REM JOUR DE LA DATE
3 REM TELECHARGE SUR WILLYTEL
4 REM 24H/7H AU 62.93.74.05
10 DIM A$(6):RESTORE 110:FOR I=0 TO 6:READ A$(I):NEXT I
20 INPUT "Date:JJ/MM/AAAA ";B$:T=VAL (MID$(B$,1,2)):M=VAL(MID$(B$,4,2))
30 J=VAL(MID$(B$,7,4)):IF J<1582 PRINT "Erreur/Entree":GOTO 20
40 IF M>2 THEN M=M-2:GOTO 60
50 M=M+10:J=J-1
60 H=INT(J/100):J=J-100*H:W=INT(J/4) +INT(H/4)+INT((13*M-1)/5)+T+J-2*H
70 IF W>0 THEN W=W-7*INT(W/7):GOTO 90
80 IF W<0 THEN W=W+7:GOTO 80
90 PRINT B$+" : "+A$(W):GOTO 20
100 REM DATAs
110 DATA "Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"
200 PRINT "Error";:FOR X=1 TO 200: NEXT X:PRINT CHR$(13);:RESUME 1
++++++++++++++++++++++++++++++++++++++
programme pendu
1 REM (C) WILLYTEL 89
2 REM TELECHARGEMENT 24H/7H
3 REM AU 62.93.74.05
4 REM PENDU
5 PRINT CHR$(9);
10 CLS:PRINT "* PENDU sur Casio (c) WILLYTEL *";" Tapez sur une touche SVP";
20 A$=INKEY$:IF A$="" THEN 20
25 P=0
30 CLS:PRINT "Patientez SVP...";: RESTORE#:X=INT(RAN#*40)
35 ON ERROR GOTO 60
40 READ# N$:N=INT(40*RAN#):IF N<>X THEN 40
50 GOTO 70
60 RESUME 30
70 L=LEN(N$)
80 A$=RIGHT$("--------------------------------",L)
90 CLS:LOCATE 0,0:PRINT A$;
100 LOCATE 0,1:PRINT "VOTRE CHOIX:";: INPUT@2;R$
105 B=0
110 IF R$=LEFT$(N$,1) THEN A$=R$+RIGHT$(A$,L-1):B=1
112 IF R$=RIGHT$(N$,1) THEN A$=LEFT$(A$,L-1)+R$:B=1
113 IF L<3 THEN 150
115 FOR I= 2 TO L-1
120 IF R$=MID$(N$,I,1) THEN A$=LEFT$(A$,I-1)+R$+RIGHT$(A$,L-I):B=1
140 NEXT I
150 IF N$=A$ THEN 200
155 IF B=1 OR R$="" THEN 90
160 P=P+1
170 CLS:LOCATE 0,0
180 PRINT "RESTE:";8-P;"COUP(S)":IF P=8 THEN BEEP1:CLS:PRINT "PERDU !!!":PRINT "C'ETAIT:";N$:GOTO 1
190 GOTO 90
200 CLS
210 PRINT "VOUS AVEZ GAGNE !!!";CHR$(13);"->";A$:GOTO 1
++++++++++++++++++++++++++++++++++++++
programme poursuite
1 CLS:PRINT " POURSUITE INFERNALE (c) W-TEL JANV 90";:FOR I=1TO200:NEXT I:GOSUB 900
2 P$=CHR$(140):M$=CHR$(241)
3 CLS:PRINT P$;":c'est vous !";CHR$(13);M$;":c'est le monstre !"
4 PRINT "Vous devez l'eviter grace aux touches 8,6,2,4.":PRINT "8:haut,2:bas, 6:droite,4:gauche
7,9,1,3:diagonales"
5 PRINT "La partie est chronometree. Le compteur s'affiche en bas.":PRINT "Tous les 50 le monstre saute. Tous
les 100 vous sautez !"
6 PRINT "MANGER LE * ET VOUS GAGNER 100"
7 PRINT "Bonne Chance.... Essayez quand meme la touche 5"
8 REM
9 REM (c)W-TEL 24/24 62.93.74.05
10 CLS:PRINT "READY ? PRESS [EXE]":GOSUB 920
15 CLS
20 X=INT(RAN#*30):Y=0:MX=RAN#*30: MY=1:T=0:LX=INT(RAN#*30):LY=INT (RAN#*2)
25 LOCATE X,Y:PRINT P$;:LOCATE MX,MY:PRINT M$;:LOCATE LX,LY:PRINT "*";
30 A$=INKEY$:T=T+1
31 IF T/100=INT(T/100) THEN A$="5"
32 IF T/50=INT(T/50) THEN 40
35 XX=0:YY=0:XM=0:YM=0
36 IF X-MX<>0 THEN XM=(X-MX)/ABS(X-MX)/0.9:MX=MX+XM
37 IF Y-MY<>0 THEN YM=(Y-MY)/ABS(Y-MY)/5:MY=MY+YM
38 IF MX<0 OR MX>30 THEN MX=MX-XM:XM=0
39 IF MY<0 OR MY>1 THEN MY=MY-YM:YM=0
40 IF A$="8" THEN YY=-1:XX=0
45 IF A$="3" THEN XX=1:YY=1
50 IF A$="2" THEN YY=+1:XX=0
55 IF A$="1" THEN XX=-1:YY=1
60 IF A$="6" THEN XX=+1:YY=0
65 IF A$="7" THEN XX=-1:YY=-1
70 IF A$="4" THEN XX=-1:YY=0
75 IF A$="9" THEN XX=1:YY=-1
76 IF A$="5" THEN XX=INT(RAN#*30)-X:YY=INT(RAN#*2)-Y
80 X=X+XX:IF X<0 OR X>30 THEN X=X-XX:XX=0
90 Y=Y+YY:IF Y<0 OR Y>1 THEN Y=Y-YY:YY=0
91 IF T/50=INT(T/50) THEN XM=RAN#*30-MX:YM=INT(RAN#*2)-MY:MX=MX+XM:MY=MY+YM
92 LOCATE 15,1:PRINT T;
95 LOCATE X-XX,Y-YY:PRINT " ";
96 LOCATE MX-XM,MY-YM:PRINT " ";
97 LOCATE LX,LY:PRINT "*";
99 LOCATE MX,MY:PRINT M$;
100 LOCATE X,Y:PRINT P$;
110 IF X=LX AND Y=LY THEN T=T+100:BEEP1:LX=INT(RAN#*30): LY=INT(RAN#*2)
120 IF X<>INT(MX) OR Y<>INT(MY) THEN 30
130 IF X=INT(MX) AND Y=INT(MY) THEN BEEP0:BEEP1:BEEP0:CLS:PRINT "PERDU !!!":GOTO 200
200 PRINT "T=";T:IF T>MT THEN MT=T
210 PRINT "MT=";MT:GOSUB 920:CLS:GOTO 10
900 FOR X=0 TO 30:FOR Y=0 TO 1:LOCATE X,Y:PRINT CHR$(135);:NEXT Y:NEXT X
920 FOR X=0 TO 30:FOR Y=0 TO 1:LOCATE X,Y:PRINT " ";:NEXT Y:NEXT X
930 RETURN
+++++++++++++++++++++++++++++++++++++
programme Simplex
CE PROGRAMME PERMET D'OPTIMISER DES
PROBLEMES EN UTILISANT LA METHODE DU
SIMPLEX A PARTIR DES EQUATIONS MODIFIEES
(VARIABLES PROPRES, D'ECARTS,...ETC).
Z EST LA FONCTION A OPTIMISER.
X(i) SONT LES VECTEURS DE LA BASE.
LE PRG VOUS DEMANDE S'IL FAUT EFFACER
LES VARIABLES POUR RE-INITIALISER LE
PRG, REPONDRE O.
ENTRER LE NBRE DE VARIABLES TOTAL, PUIS
LE NBRE D'EQUATIONS.
VIENS ENSUITE LA SAISI DES EQUATIONS:
-D'ABORD LES COEF DES EQUATIONS PUIS LE
RESULTAT.
ENFIN VOUS SAISISSEZ LA FONCTION
ECONOMIQUE.
LES X(i) SONT LES VECTEURS DE LA BASE DE
DEPART.
LE PRG VA ENSUITE EXTRAIRE UN VECTEUR
PUIS EN FAIRE RENTRER UN AUTRE.
L'OPTIMISATION EST OBTENU LORSQUE LE
VECTEUR SORTANT=VECTEUR RENTRANT.
POUR AVOIR LA METHODE COMPLETE ECRIVEZ A
SAINT-CRICQ WILLIAM, 98AVENUE DU RGT DE
BIGORRE, 65000 TARBES.
1 REM METHODE DU SIMPLEX
2 REM (C) WILLYTEL JUIN 89
3 REM 24H/7H AU 62.93.74.05
10 REM ENTREE VALEURS
15 A$="":INPUT "CLEAR ALL ?";A$:IF A$="O" THEN CLEAR
20 INPUT "Nombre de var:";NVAR
30 INPUT "Nombre d'equation:";NEQ
40 XX=NVAR+3
50 YY=NEQ+1
60 DIM T(XX,YY)
70 DIM R(YY)
80 REM ENTREE TABLEAU
90 FOR Q=1 TO YY-1
100 FOR P=3 TO XX-1
110 PRINT P-2;" ";Q;CHR$(13);:INPUT "Coef eq:";T(P,Q)
120 NEXT P
130 INPUT "Resultat:";T(P,Q)
140 NEXT Q
150 REM ENTREE Z
160 FOR P=3 TO XX-1
170 PRINT P-2;CHR$(13);:INPUT "Coef Z:";T(P,YY)
180 NEXT P
190 REM ENTREE SOLUTION BASE
200 FOR P=1 TO YY-1
210 INPUT "X(i)?:";T(2,P)
220 T(1,P)=T(T(2,P)+2,YY)
230 T(XX,YY)=T(XX,YY)+T(1,P)*T(XX,P)
240 NEXT P
250 GOSUB 580
260 REM CALCUL Z MAX
270 MZ=0
280 FOR P=3 TO XX-1
290 IF T(P,YY)>MZ THEN MZ=T(P,YY):J=P
300 NEXT P
310 PRINT "Vecteur entre:";J-2
320 REM CAL VECT SORT
330 MIN=9*10^30
340 FOR P=1 TO YY-1
350 IF T(J,P)=0 THEN R(P)=9*10^30
360 IF T(J,P)<>0 THEN R(P)=T(XX,P)/T(J,P)
370 IF R(P)>0 AND R(P)<MIN THEN MIN=R(P):L1=P
380 NEXT P
390 PRINT "Vecteur sortant:";T(2,L1)
400 T(2,L1)=J-2
410 T(1,L1)=T(T(2,L1)+2,YY)
420 PAS1=T(J,L1)
430 FOR P=3 TO XX
440 T(P,L1)=T(P,L1)/PAS1
450 NEXT P
460 FOR P=1 TO YY-1
470 IF T(J,P)=0 OR P=L1 THEN GOTO 520
480 CO=T(J,P)
490 FOR Q=3 TO XX
500 T(Q,P)=T(Q,P)-CO*T(Q,L1)
510 NEXT Q
520 NEXT P
530 CC=T(J,YY)
540 FOR P=3 TO XX-1
550 T(P,YY)=T(P,YY)-T(P,L1)*CC
560 NEXT P
570 T(XX,YY)=T(XX,YY)+T(XX,L1)*CC
575 GOSUB 580:GOTO 260
580 REM AFFICHAGE
590 FOR P=1 TO YY
600 FOR Q=1 TO XX
610 PRINT T(Q,P);" ";
620 NEXT Q
630 PRINT" "
640 NEXT P
650 INPUT "Encore?";A$
660 RETURN
+++++++++++++++++++++++++++++++++++++
programme simplification fraction
VOUS POURREZ REDUIRE TOUTES LES
FRACTIONS QUE VOUS VOUDREZ.
A ETANT LE NUMERATEUR ET B LE
DENOMINATEUR.
EX: 123/321=41/107
1 REM SIMPLIFRAC
2 REM TELECHARGE SUR WILLYTEL
3 REM 24H/7H AU 62.93.74.05
10 PRINT "SIMPLIF FRACTIONS A/B";CHR$(13);
20 INPUT "A:";A:INPUT "B:";B
30 PRINT A;"/";B;"=";CHR$(13);
40 G=A:H=B:GOSUB 100
50 G=G/D:H=H/D
60 PRINT G;"/";H:GOTO 10
100 IF A<B THEN T=A:A=B:B=T
110 R=A-B*INT(A/B)
120 IF R=0 THEN D=B:RETURN
130 A=B:B=R:GOTO 110
++++++++++++++++++++++++++++++++++++
programme Zero polynome degre N avec
complexe
CE PROGRAMME PERMET DE TROUVER LES
RACINES REELLES ET COMPLEXES D'UN
POLYNOME DE DEGRE N.
n EST LE DEGRE DU POLYNOME.
a 0 EST LE COEF DE X^0, a 1 DE X^1,
AINSI DE SUITE.
EX: 5X^3-4X^2+3X^1-2=0
DONNE LES SOLUTIONS SUIVANTES:
0.5904893191 +/- 0.8374067097 j
x=-0.380979131
avec f(x)=-4.05304E-06
1 REM RESOLUTION POLYNOME DE DEGRE N
2 REM TELECHARGE SUR WILLYTEL
3 REM 24H/7H AU 62.93.74.05
10 CLS:PRINT "P=a0+a1x+a2x^2+...+anx^n";CHR$(13);
15 CLEAR :INPUT "n=";G:F=G:DIM A(G),B(G),C(G),D(G):FOR I=G TO 0 STEP-1:PRINT "a";I;:INPUT "=";A(I):NEXT I
20 FOR I=G TO 0 STEP-1:IF A(I)>=0 THEN S$="+" ELSE S$="-"
30 A$=STR$(A(I)):I$=STR$(I):LA=LEN(A$): LI=LEN(I$):A$=RIGHT$(A$,LA-1): I$=RIGHT$(I$,LI-1)
40 P$=P$+S$+A$+"x^"+I$:NEXT I:CLS: PRINT P$+"=0"
50 P=1E-4:N=1E-9:FOR I=G TO 0 STEP-1:D(I)=A(I):NEXT I:IF G<=2 GOTO 190
60 A=0:H=1:K=-1:B(G)=A(G):C(G)=A(G)
70 B(G-1)=B(G)*H+A(G-1):C(G-1)=B(G-1)+B(G)*H
80 FOR I=G-2 TO 0 STEP-1:B(I)=B(I+2)*K+B(I+1)*H+A(I): C(I)=C(I+2)*K+C(I+1)*H+B(I):NEXT I
90 C=C(2)*C(2)-C(1)*C(3):IF C=0 THEN PRINT "Autres Val.Dep":END
100 O=H-(B(1)*C(2)-B(0)*C(3))/C:D=K-(B(0)*C(2)-B(1)*C(1))/C
110 IF ABS(B(0))<P AND ABS(B(1))<P GOTO 150
120 IF ABS(O-H)<N AND (D-K)<N THEN PRINT "Iterat.Creee":END
130 A=A+1:IF A>40 THEN PRINT "To Slow":END
140 H=O:K=D:GOTO 70
150 L=O/2:M=O*O+4*D:IF M<0 GOTO 170
160 Q=L+SQRM/2:PRINT "x=";Q:GOSUB 230: Q=L-SQRM/2:PRINT "x=";Q:GOSUB 230: GOTO 180
170 PRINT L;CHR$(249);SQR-M/2;"j"
180 FOR I=2TOG:A(I-2)=B(I):NEXT I:G=G-2:IF G>2 GOTO 60
190 IF G=1 THEN Q=A(0)/-A(1):PRINT "x=";Q:GOSUB 230:END
200 L=-A(1)/(2*A(2)):M=A(1)*A(1)-4*A(2)*A(0):IF M<0 GOTO 220
210 Q=L+SQRM/(2*A(2)):PRINT "x=";Q: GOSUB 230:Q=L-SQRM/(2*A(2)):PRINT "x=";Q:GOSUB 230:END
220 PRINT L;CHR$(249);SQR-M/(2*A(2)); "j":END
230 B=0:FOR I=1 TO F:B=B+D(I)*Q^I:NEXT I:B=B+D(0):PRINT "f(x)=";B:RETURN
**************************************
Voici un petit programme d'animation.
10 DIM A$(2):A$(0)="0000100000": A$(1)="0038283800":A$(2)="7C4444447C": FOR I=0 TO 2:DEFCHR$(253+I)=A$(I):NEXT
20 CLS:FOR I=0 TO 63:PRINT CHR$(255-INT(RAN#*100)MOD3);:NEXT :LOCATE0,0: I=0
30 DEFCHR$(253)=A$((I+1)MOD3): I=I+1*1*1*1*1*1*1*1:DEFCHR$(254)= A$((I+1)MOD3):I=I+1*1*1*1*1*1*1*0:
DEFCHR$(255)=A$((I+2)MOD3):GOTO 30
40 I=I+1:DEFCHR$(253)=A$((I)MOD3): DEFCHR$(254)=A$((I+1)MOD3): DEFCHR$(255)=A$((I+2)MOD3):GOTO 30
**************************************
Programme de conversion base 10<> base N
(N>1)
10 CLS:CLEAR
20 PRINT "1:(10>N) 2:(N>10)";
30 INPUT ":",I
40 IF I=1 THEN 100 ELSE 200
100 CLS:INPUT " BASE(N):",N," NOMBRE(X):",C
110 A=N:F=N:B=10
120 GOTO 300
200 CLS:INPUT " BASE(N):",N," NOMBRE(X):",C
210 B=N:A=10:F=0
300 E=INT(C/A):IF E=0 THEN 330
310 D=D+(C-E*A)*B^M
320 C=E:M=M+1:GOTO 300
330 D=D+C*B^M
340 IF F=0 THEN 370
350 PRINT "10>";A;":";D
360 GOTO 10
370 PRINT B;">10:";D
380 GOTO 10
**************************************
Biorythme classique.
Ph:physique, Se:sexe, In:intellectuel
Sachant que ces tats varient de -10
10, et la flche indique si c'est en
phase ascendante ou descendante.
1 REM Biorythme
2 REM base de donnees: Wtel 24/24 (16) 62.93.74.05
3 REM
9 MODE 5
10 INPUT "DATE NAIS:(jjmmaa):";D$: IF D$="" THEN GOTO 10
20 J$=MID$(D$,1,2):M$=MID$(D$,3,2): A$=MID$(D$,5,2)
30 J=VAL(J$):M=VAL(M$):A=VAL(A$)
40 INPUT "DATE ACTUELLE(jjmmaa):";D$
50 K$=MID$(D$,1,2):N$=MID$(D$,3,2): B$=MID$(D$,5,2)
60 K=VAL(K$):N=VAL(N$):B=VAL(B$): D=365*(B-A-1)
70 U=A+1:IF M<=2 THEN U=A
80 V=B:IF N>2 THEN V=B+1
90 FOR I=U TO V:IF FRAC(I/4)=0 THEN D=D+1
100 NEXT I
110 IF N<>1 THEN RESTORE 1000:FOR I=1 TO N-1:READ X:D=D+X:NEXT I
120 D=D+K:RESTORE 1000:FOR I=1 TO M: READ X:NEXT I:D=D+X-J
130 IF M<>12 THEN RESTORE 1100:FOR I=M+1 TO 12:READ X:D=D+X:NEXT I
140 RESTORE 1200:CLS:FOR I=1 TO 3: READ D$,T:PRINT D$;
150 E=FRAC(D/T):PRINT INT(10*SIN (2*PI*E));
160 Q=SGN(COS(2*PI*E)):D$=CHR$(230): IF Q=1THEN D$=CHR$(227)
170 IF Q=-1 THEN D$=CHR$(229)
180 PRINT D$;:IF I<>3 THEN PRINT " ";
190 NEXT I:Q$=INPUT$(1):CLS:GOTO 40
1000 DATA 31,28,31,30,31,30,31,31, 30,31,30,31
1100 DATA 31,30,31,30,31,31,30,31, 30,31,28,31
1200 DATA "Ph:",23,"Se:",28,"In:",33
**************************************
Programme d'exploration de la RAM et
ROM.
- indiquer le mode de recherche Direct
ou Squentiel.
- Squentiel: tapez -PI pour revenir au
sommaire, et PI pour faire une
modification dans la mmoire.
- Direct: tapez -PI pour revenir au
sommaire, et PI pour modifier la
mmoire.
5 VAC:CLS:PRINT TAB(2)"***PROGRAMME D'EXPLORATION***";:LOCATE7,1:PRINT "DE LA MEMOIRE V1.1"
7 INPUT "EN (D)IRECT OU EN (S)EQUENCES ";H$:IF H$="D" THEN 200 ELSE IF H$<>"S" ;GOTO 5
10 INPUT "LA RECHERCHE DEBUTE A L'ADRESSE ",ADR:INPUT "QUEL SEGMENT " ;RTC:DEFSEG=RTC
15 A=PEEK(ADR)
20 CLS:PRINT "SEG["RTC"] ADR["ADR"]"; :LOCATE 22,0:PRINT "HEXA["HEX$(ADR)"]";
30 LOCATE0,1:PRINT "CONTENU["CHR$(A)"] ASCII["A"]";
40 A=0:INPUT ">",A:Z=-3:IF A=PI;GOTO 100 ELSE IF A=Z THEN ADR=ADR-1:GOTO 15
50 IF A=0;ADR=ADR+1:GOTO 15 ELSE 55
55 IF A=-PI THEN 5
60 ADR=A:GOTO 15
100 CLS:INPUT "MODIFICATION A L'ADRESSE NUMERO ",ADR
102 X=PEEKADR:PRINT "QUEL NOMBRE FAUT -IL METTRE A LA PLACE DE "X"(";:PRINT CHR$(X)")";:INPUT "";Z:POKE ADR,Z:
GOTO 15
200 CLS:INPUT "DE L'ADRESSE ",AA," A L'ADRESSE ",AB," NUMERO DU SEGMENT ",QW:DEFSEG=QW:IF AA=-PI;GOTO 7 ELSE IF
AA=PI THEN 230
210 CLS:FOR I=AA TO AB:PRINT CHR$(PEEKI);:NEXT
220 STOP:GOTO 200
230 CLS:INPUT "A PARTIR DE QUELLE ADRESSE VA-T-ON POKER ";PO,"QUE VAIS-JE METTRE ";PO$,"A QUEL SEGMENT ";SE:
DEFSEG=SE
240 W=LEN(PO$):FOR I=PO TO PO+W: Y=Y+1:L$=MID$(PO$,Y,1):L=ASC(L$): POKE I,L:NEXT:GOTO 200
**************************************
Programme de transformation d'un rel en
fraction. Trs rapide !
1 REM PROGRAMME DE FRACTION
2 REM BASE DE DONNEES: WTEL 24/24 (16) 62.93.74.05
3 REM
10 Q=0:INPUT "X=";X:H=INT X:Z=FRAC X:L=1:P=1
20 IF ABS(X-H/P)<=1E-10 THEN PRINT X;"=";H;"/";P:GOTO 10
30 O=INT(1/Z):Z=FRAC(1/Z):M=H:N=P: H=O*H+L:P=O*P+Q:L=M:Q=N:GOTO 20
**************************************
Nombres alatoires.
10 MODE 5:DIM:CLS:ANGLE1
20 X=RAN#(1):IF X=0 THEN 20
25 Y=RAN#(1):IF Y=0 THEN 25
30 X=SQR(-2*LNX):Y=2*PI*Y
40 Z=X*COSY:GOSUB 60
50 Z=X*SINY:GOSUB 60:GOTO 20
60 PRINT TAB(0);Z;:Z$=INPUT$(1,@): RETURN
**************************************
Trs utile pour savoir le nombre
d'octets que prennent les programmes et
le MEMO.
1 REM PROGRAMME DE CALCUL DU NOMBRE D'OCTET
2 REM BASE DE DONNES: WTEL 24/24 (16) 62.93.74.05
3 REM
10 PRINT "Indiquez le numero de la page que vous voulez tester:";: A$=INPUT$(1):PRINT A$;:IF A$="M" THEN A=11
ELSE A=VAL(A$)+1
20 PRINT :A=PEEK1715+256*PEEK1716-15*A:B=PEEK(A+3)+PEEK(A+4)*256-PEEKA-PEEK(A+1)*256-1:PRINT B"Octets":GOTO 10
**************************************
Petit prsentation sympa...
1 REM W-TEL 24H/24
2 REM 62.93.74.05
10 ON ERROR GOTO 200:VAC
20 CLS:INPUT "Donnez le texte:",A$: CLS:A=LEN(A$):B=(32-A)/2:GOSUB 100
30 FOR X=1 TO A:LOCATE B,0: B=B+1: P$=MID$(A$,X,1):PRINT P$;:GOSUB 100: NEXT: LOCATE B,0:PRINT "."
50 GOTO 10
100 DEFCHR$(252)="0101FF0101"
110 DEFCHR$(253)="4121110905"
130 FOR I=1 TO 5
140 LOCATE B,0:PRINT "-";:LOCATE B,0: PRINT "/";: LOCATE B,0: PRINT CHR$(252); : LOCATE B,0 :PRINT CHR$(253);:
NEXT :RETURN :END
200 PRINT "Error,trop long";:FOR E=0 TO 300:NEXT :GOTO 10
**************************************
Voici le pro des pro: Transfert des
programmes LIB en P0.
Mais attention ! Ne modifiez pas le
programme transfr en P0 car c'est le
plantage dfinitif de votre Casio !
Tapez ce programme ailleur qu'en P0 et
suivez les instructions.
Je vous rappelle que si vous dsirez le
listing d'un programme de la LIB envoyez
moi une enveloppe timbre...
1 REM BASE DE DONNEES: WTEL 24/24 (16) 62.93.74.05
2 REM pour retablir P0:
3 REM poke adr,ld
4 REM poke adr+1,hd
5 REM poke adr+2,0
6 REM poke adr+3,lf
7 REM poke adr+4,hf
8 REM poke adr+5,0
9 REM
10 REM TRANSFERT D'UN PROGRAMME DE LA LIB EN P0
20 INPUT "Numero de Lib:";N$
30 DEFSEG=0: ADR=PEEK1715 + PEEK1716*256-15
40 DN=PEEK1718 + PEEK1719*256 + PEEK1720*65536
50 FN=PEEK1724 + PEEK1725*256 + PEEK1726*65536
60 FOR J=DN TO FN-15 STEP 15: DEFSEG=J/16: OF=J-INT(J/16)*16+6
70 FOR K=1 TO LEN(N$): IF ASC (MID$(N$,K)) = PEEK(K+OF) THEN NEXT K: GOTO 100
80 NEXT J:PRINT "Non trouve":END
100 REM P0 SAUVEGARDE, TRANSFERT PROGRAMME EN P0
110 DEFSEG=0:IF PEEK(ADR+2)=0 THEN LD=PEEK ADR: HD=PEEK(ADR+1): LF=PEEK(ADR+3): HF=PEEK(ADR+4)
120 FOR K=0 TO 5: DEFSEG=J/16: BYTE=PEEK(K+J-INT(J/16)*16): DEFSEG=0: POKE ADR+K,BYTE: NEXT K
**************************************
Pour voir le pass de votre Casio
10 PRINT "PASS [";:FOR I=1867 TO 1874: DEFSEG=0: PRINT CHR$(PEEKI);: NEXT: PRINT "]"
**************************************
Petit programme qui dveloppe (a+b)^n
avec n<10
(Source Laurent Lechelle)
10 CLEAR:PRINT "(a+b)";CHR$(156);"=... ";:INPUT"n=",N:IF N>9 THEN 10 ELSE PRINT"(a+b)";CHR$(144+N);"=";:FOR
A=0 TO N:PRINTNCR(N,A);"a";CHR$(8-(N-A<>0)*(136+N- A);"b";CHR$(8-(A<>0)*(136+A));" +";:NEXT A:PRINTCHR$(8):GOTO
10
**************************************
PROGRAMMES FX CASIO
6000G - 7000G - 7500G - 8000G - 8500G
FICHE Nø 13
PAR LAURENT LECHELLE
Mcl : Rad : Defm 12 : jour->K : mois->N
(anne sur 4 chiffres)->B : "BIORYTHMES" : Lbl 0 : 0->C
23->E[1] : 28->E[2] : 33->E[3] : 0->Z[1] : 31->Z[2]
59.25->Z[3] : 90.25->Z[4] : 120.25->Z[5] : 151.25->Z[6]
181.25->Z[7] : 212.25->Z[8] : 243.25->Z[9] : 273.25->Z[10]
304.25->Z[11] : 334.25->Z[12]
"Date de naissance"?->J : ?->M : ?->A
365.25(B-A)+Z[N]-Z[M]+K-J->R
Lbl 1 : C+1->C : Range -pi,pi,2pi/E[C],-1,1,.1
(R-E[C]Int (R/E[C]))*2pi/E[C]->S Ý
Graph Y=sin (X+S)Ý C<>=>Goto 1:Goto 0
339 pas
symboles utiliss: pi remplacer par
le vrai signe de pi
Ý remplacer par
le triangle au dessus de la touche ":"
<> remplacer par
diffrent (= barr)
Entrez dans le programme les donnes
concernant le jour, le mois et l'anne.
Puis lancez ensuite le programme. Entrez
le jour, le mois et l'anne (sur 4
chiffres) de la personne dont vous
voulez connaitre le Biorythme. Les 3
courbes qui apparaissent dcrivent la
forme physique, puis la sensibilit,
puis la forme intellectuelle (ce qui est
diffrent de l'intelligence...). Les
rsultats sont donns entre -10 et +10
(axe des ordonnes). L'axe des abscisses
repre la date de jour. Vous pouvez donc
visualiser votre Biorythme plusieurs
l'avance...sachant qu'un graduation de
cet axe reprsente une journe.
******************************
Programme pour que PIELB trouve sa bien-
aime
10 CLS:CLEAR :INPUT "TA DATE ",D$
20 J=VAL(MID$(D$,1,2)):M=VAL(MID$(D$,3,2)):A=VAL(MID$(D$,5,2))
50 LOCATE 0,1:INPUT "SA DATE ",E$
60 K=VAL(MID$(E$,1,2)):N=VAL(MID$(E$,3,2)):B=VAL(MID$(E$,5,2))
70 S=J+69:T=K+69:U=M+88:V=N+88
80 X=S+T:Y=U+V:Z=A+B
90 X=X/3:Y=Y/4:Z=Z/3
95 CLS:SETF2:PRINT "AMOUR "X"% SEXE "Y"%";:LOCATE0,1:PRINT "PH & IN "Z"%":W=((X+Y+Z)/3):CLS:LOCATE0,0:PRINT
"TOTAL:"W"%":SETN:GOTO 50
******************************
Programme de cration de caractres.
Le code Hexa est stock en IN/OUT.
INS pour inverser le point
Les flches pour se dplacer
I pour faire une inversion vido
EXE pour quitter et sauver le code Hexa
(Source Laurent Lechelle)
10 PRINT "CREATION DE MATRICES";:FOR I=1 TO 7:PRINT:PRINT ".....";I;" (";CHR$(255);")";:NEXT I:LOCATE 0,0
15 X=0:Y=1:F=0:ERASE A,T$:DIM A(4,7),T$(4):FOR I=0 TO 4:T$(I)="00":NEXT I:DEFCHR$(255)="0000000000"
20 A$=INKEY$:IF A$="" THEN LOCATE X,Y:PRINT CHR$(32+F*(14-89*(A(X,Y)=1)));:F=1-F:GOTO 20 ELSE A=ASC(A$)
25 LOCATE X,Y:PRINT CHR$(46-89*(A(X,Y)=1));
30 IF A=28 AND X<4 THEN X=X+1
31 IF A=29 AND X>0 THEN X=X-1
32 IF A=30 AND Y>1 THEN Y=Y-1
33 IF A=31 AND Y<7 THEN Y=Y+1
34 IF A=13 THEN 60
35 IF A=18 THEN GOSUB 40:A=28:GOTO 30
36 IF A=73 THEN XX=X:FOR X=0 TO 4:FOR J=1 TO 7:LOCATE X,J:A(X,J)=1-A(X,J):PRINT CHR$(46-89*(A(X,J)=1));:NEXT
J:GOSUB 50:NEXT X:X=XX
37 GOTO 20
40 A(X,Y)=1-A(X,Y):LOCATE X,Y:PRINT CHR$(46-89*(A(X,Y)=1));
50 T=0:FOR I=1 TO 7:T=T-(A(X,8-I)=1)*2^I:NEXT
I:T$(X)=RIGHT$(HEX$(T),2):DEFCHR$(255)=T$(0)+T$(1)+T$(2)+T$(3)+T$(4):RETURN
60 CLS:CALC$=CHR$(34)+T$(0)+T$(1)+T$(2)+T$(3)+T$(4)+CHR$(34):ERASE T$,A
****************************
Les programmes pour graphiques sont dans
le Volume 3
PROGRAMMES FX CASIO
8000G - 8500G
FICHE Nø 14
PAR PIERRE HOUSSIN
Premier programme (prog 0)
Mcl : Deg : Range 1->95,0,1->63,0
Lbl 0 : Isz E : Int 20Ran#+20->I : Int 21Ran#+20->J
Int 13Ran#+20->S : Int 10Ran#+20->T
Lbl 4 : Int 68Ran#+26->A : Int 10Ran#+52->B
I<=A => A<=I+S => J<=B => B<=J+T => Goto 4
Plot A,B : 0->H : 12->C : 25->D
Lbl 1 : Cls : Prog 1 : Plot A,B : Plot C,DÝ
X->C : Y->D : Isz H : H>=20 => Goto 4
"ANGLE"?->Z : "FORCE"?->L
Lbl 2 : L-1->L : L<0 => Goto 1
sin Z->F : cos Z->G : C+G->C : D+F->D : Plot C,D
C>94 => Goto 5 : D>62 => Goto 5 : C<2 => Goto 5 : D>11 => Goto 5
A=C => B=D => Goto 6
Lbl 7 : C>=I => Goto 3 : L>=0 => Goto 2 : Goto 1
Lbl 3 : I<=C => C<=I+J => J<=D => D<=J+T => Goto 5 : Goto 2
Lbl 5 : "PERDU=" : PÝ Prog 0
Lbl 6 : L>5 => Goto 7 : P+S-H->P : "GAGNE=" : PÝ E<12 => Goto 0
" FIN DU GREEN TOTAL:" : PÝ
Prog 0
Second programme (prog 1)
Plot I,J : Plot I+S,J : Line : Plot I+S,J+T : Line
Plot I,J+T : Line : Plot I,J : Line
Plot 1,10 : Plot 95,10 : Line : Plot 95,63 : Line
Plot 1,63 : Line : Plot 1,10 : Line longueur totale : 704 pas
symboles utiliss: pi remplacer par
le vrai signe de pi
Ý remplacer par
le triangle au dessus de la touche ":"
<> remplacer par
diffrent (= barr)
<=, >= remplacer
respectivement par infrieur ou gal et
suprieur ou gal
Vous pouvez taper ces deux programmes
dans la zone fichiers de votre machine
pour cela nomez les respectivement
"GOLF" et "GOLF1", puis remplacez les
instructions Prog 0 et Prog 1 par les
instructions Prog "GOLF" et Prog
"GOLF1".
**************************
C'est tout pour l'instant, mais vous
pouvez m'en envoyer l'adresse
suivante:
Saint-Cricq William
9 Rsidence Bel Air
65000 TARBES
Je remercie PIELB pour ses programmes et
son animation de la rubrique Casio sur
W-Tel, pour le contacter : Bal PIELB sur
W-Tel.
ATTENTION: CES PROGRAMMES NE PEUVENT
ETRE VENDUS. ILS SONT DU DOMAINE PUBLIC
ET SONT DISTRIBUES PAR W-TEL.